// -----------------------------
// Author: 		Dhaenens Gert 
// Creation: 	12/30/2014 2:09:37 PM				
// -----------------------------

#ifndef _Filters_h
#define _Filters_h

#include "Common.h"

class Filters
{
public:

	static Float*	Blur(UInt32 uWidth, UInt32 uHeight, UInt32 uChannels, UInt32 uSamples, Float* lpData);

	static Float*	Normalize(UInt32 uDimensions, Float* lpData);

	static Float*	NoiseVariateMultiply(UInt32 uWidth, UInt32 uHeight, UInt32 uChannels, Bool bIgnoreLastChannel, Float minValue, Float maxValue, Float scale, Float* lpData);
	static Float*	NoiseVariateAdd(UInt32 uWidth, UInt32 uHeight, UInt32 uChannels, Bool bIgnoreLastChannel, Float minValue, Float maxValue, Float scale, Float* lpData);
	static Float*	NoiseVariateAddPerChannel(UInt32 uWidth, UInt32 uHeight, UInt32 uChannels, Bool bIgnoreLastChannel, Float minValue, Float maxValue, Float scale, Float* lpData);

private:
	Filters();
	~Filters();
	Filters(const Filters& refFilters);
	Filters& operator=(const Filters& refFilters);
};

#endif